/*!
	\file Erreur.h
	\brief La spécification de la classe Erreur

	Décrit la liste des méthodes et attributs associés à la class Erreur
	\author Arnaud MAILLET
	\date 03.01.2009
*/

/*! 
	\class Erreur
	\brief La classe mère représentant les erreurs.

	Cette classe permet de représenter sous la forme d'un objet les différentes erreurs que l'interpreteur peut rencontrer
	Les méthodes suivantes sont associées à un objet de type Erreur :
	\li afficher
	\li what
*/
#ifndef ERREUR_H
#define ERREUR_H
#include <exception>
#include <string>
using namespace std;
 
class Erreur: public exception
{
public:
	
	/*! 
	\fn Erreur(string msg, int ligne, int colonne) throw()
	\brief Constructeur de la classe Erreur.

	Ce constructeur fixe les valeurs requises pour une erreur.
	\param msg - le message de l'erreur
	\param ligne - la ligne de l'erreur
	\param colonne - la colonne de l'erreur
        */
    	Erreur(string msg, int ligne, int colonne) throw();

	/*!
	\fn virtual void afficher()
	\brief Permet d'afficher les caractéristiques d'une erreur
	*/
	virtual void afficher();

	/*! 
	\fn const chat* what() const throw()
	\brief Retourne le message d'une erreur
	\return la valeur du message de l'erreur
	*/
	const char* what() const throw();

	/*!
	\fn ~Erreur() throw()
	\brief Destructeur de la classe Erreur.

	Ce destructeur permet de détruire un objet Erreur.
	*/
	~Erreur() throw();
 
private:
	/*!
	\var string msg
	\brief  Contient la description générale d'une erreur
	*/
	string msg;

	/*!
	\var int ligne
	\brief  Contient la ligne où s'est produite l'erreur
	*/
	int ligne;

	/*!
	\var int colonne
	\brief  Contient la colonne où s'est produite l'erreur
	*/
	int colonne;
};
#endif
